import jweixin from 'jweixin-module'
import Services from'../util/services.js'
import ServicesApi from'../config/api-config.js'
import StatusCode from'../config/api-status-code.js'

export default {
	//判断是否在微信中    
	isWechat: function() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			//console.log('是微信客户端')  
			return true;
		} else {
			//console.log('不是微信客户端')  
			return false;
		}
	},
	initJssdk: async function(callback) {
		let url = ServicesApi.get_share_config;
		let data = {
			url: encodeURIComponent(window.location.href.split('#')[0]), //获取当前url然后传递给后台获取授权和签名信息
		};
		let result = await Services.post(url, data);
		if (result.code == StatusCode.SUCCESS_CODE || result.code == 20000) {
			console.log('result.data---->', result.data);
			//返回需要的参数appId,timestamp,noncestr,signature等  
			//注入config权限配置  
			jweixin.config({
				debug: false,
				appId: result.data.appId,
				timestamp: result.data.timestamp,
				nonceStr: result.data.nonceStr,
				signature: result.data.signature,
				jsApiList: [ //这里是需要用到的接口名称  
					'checkJsApi', //判断当前客户端版本是否支持指定JS接口  
					'onMenuShareAppMessage', //分享接口  
					'getLocation', //获取位置  
					'openLocation', //打开位置  
					'scanQRCode', //扫一扫接口  
					'chooseWXPay', //微信支付  
					'chooseImage', //拍照或从手机相册中选图接口  
					'previewImage', //预览图片接口  
					'uploadImage', //上传图片  
					'updateAppMessageShareData',
					'updateTimelineShareData'
				]
			});
			if (callback) {
				callback(result.data);
			}

		}
	},
	//在需要定位页面调用  
	getlocation: function(callback) {
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.getLocation({
					type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'  
					success: function(res) {
						// console.log(res);  
						callback(res)
					},
					fail: function(res) {
						console.log(res)
					},
					// complete:function(res){  
					//     console.log(res)  
					// }  
				});
			});
		});
	},
	openlocation: function(data, callback) { //打开位置  
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.openLocation({ //根据传入的坐标打开地图  
					latitude: data.latitude,
					longitude: data.longitude
				});
			});
		});
	},
	chooseImage: function(callback) { //选择图片  
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		//console.log(data);  
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.chooseImage({
					count: 1,
					sizeType: ['compressed'],
					sourceType: ['album'],
					success: function(rs) {
						callback(rs)
					}
				})
			});
		});
	},
	//微信支付  
	wxpay: function(data, callback) {
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.chooseWXPay({
					timestamp: data.timestamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符  
					nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位  
					package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）  
					signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'  
					paySign: data.paysign, // 支付签名  
					success: function(res) {
						// console.log(res);  
						callback(res)
					},
					fail: function(res) {
						callback(res)
					},
					// complete:function(res){  
					//     console.log(res)  
					// }  
				});
			});
		});
	},
	//微信分享
	wxShare: function(data, callback) {
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				console.log('jweixin.share----> res---->', res);
				//分享给朋友
				jweixin.updateAppMessageShareData({
					title: data.name,
					desc: data.remark,
					link: data.show_img_link,
					imgUrl: data.share_logo,
					success: function(res) {
						console.log('res---->', res);
					}
				});
				//分享到朋友圈
				jweixin.updateTimelineShareData({
					title: data.name,
					link: data.show_img_link,
					imgUrl: data.share_logo,
					desc: data.remark,
					success: function(res) {
						console.log('res---->', res);
					}
				});
			});
		});
	}
}
